/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package SnpDbHndInterfaces;

import SnpDbEntities.Category;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.LinkedHashMap;

/**
 *
 * @author Łukasz 'byku' Guzik
 */
public interface DBCatHandling extends java.rmi.Remote
{
    Category getPublicCategory(int id) throws RemoteException;

    LinkedHashMap<Integer, Category> getAllPublicCategories() throws
	    RemoteException;

    int addPublicCategory(Category newCategory) throws RemoteException;

    boolean deletePublicCategory(int id) throws RemoteException;

    boolean updatePublicCategory(Category newCategoryData) throws
	    RemoteException;

    ArrayList<Integer> getCategoryModerators(int categoryID) throws
	    RemoteException;

    boolean addModeratorToCategory(int moderatorID, int categoryID) throws
	    RemoteException;

    boolean removeModeratorFromCategory(int moderatorID, int categoryID) throws
	    RemoteException;

    Category getPrivateCategory(int id) throws RemoteException;

    LinkedHashMap<Integer, Category> getAllPrivateCategories() throws
	    RemoteException;

    int addPrivateCategory(Category newCategory) throws RemoteException;

    boolean deletePrivateCategory(int id) throws RemoteException;

    boolean updatePrivateCategory(Category newCategoryData) throws
	    RemoteException;
}
